package com.richard.arithmetic.Q1_palindromic_number;

/**
 * 方法一：
 * 使用包装类，将十进制数转换成二进制数组，
 * 将头尾的字符进行对比，依次推进，直至中间。
 * @author Richard·Wang
 * @Date 2021/4/9 22:21
 * @Version 1.0
 */
public class Compare_01 {

        public  void IntCompare(){

            int i = 11;


            while (true) {

                if (isRevser(String.valueOf(i)) &&
                    isRevser(Integer.toBinaryString(i)) &&
                    isRevser(Integer.toOctalString(i))) {
                    System.out.println(i + ", base 2:" + Integer.toBinaryString(i)
                            + ", base 8:"+Integer.toOctalString(i));
                    break;
                }
                i++;
            }
        }

    /**
     * 判断是否是回文
     * @param string
     * @return
     */
    private static boolean isRevser(String string) {

            char[] charArray = string.toCharArray();

            int i = 0;
            int j = charArray.length-1;

            while(i < j) {
                if (charArray[i] != charArray[j]) {
                    return false;
                }

                i++;
                j--;
            }
            return true;
        }
}
